package com.huacai.spots.mapper;

import java.util.List;
import com.huacai.spots.domain.Spots;
import com.huacai.spots.domain.SpotsTags;

/**
 * 景点Mapper接口
 * 
 * @author hsj
 * @date 2025-05-11
 */
public interface SpotsMapper 
{
    /**
     * 查询景点
     * 
     * @param spotsId 景点主键
     * @return 景点
     */
    public Spots selectSpotsBySpotsId(String spotsId);

    /**
     * 查询景点列表
     * 
     * @param spots 景点
     * @return 景点集合
     */
    public List<Spots> selectSpotsList(Spots spots);

    /**
     * 新增景点
     * 
     * @param spots 景点
     * @return 结果
     */
    public int insertSpots(Spots spots);

    /**
     * 修改景点
     * 
     * @param spots 景点
     * @return 结果
     */
    public int updateSpots(Spots spots);

    /**
     * 删除景点
     * 
     * @param spotsId 景点主键
     * @return 结果
     */
    public int deleteSpotsBySpotsId(String spotsId);

    /**
     * 批量删除景点
     * 
     * @param spotsIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSpotsBySpotsIds(String[] spotsIds);

    /**
     * 批量删除景点标签
     * 
     * @param spotsIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSpotsTagsBySpotsIds(String[] spotsIds);
    
    /**
     * 批量新增景点标签
     * 
     * @param spotsTagsList 景点标签列表
     * @return 结果
     */
    public int batchSpotsTags(List<SpotsTags> spotsTagsList);
    

    /**
     * 通过景点主键删除景点标签信息
     * 
     * @param spotsId 景点ID
     * @return 结果
     */
    public int deleteSpotsTagsBySpotsId(String spotsId);

    /** * 查询景点列表（包括景点标签）
     *
     * @param spots
     * @return
     */
    List<Spots> selectSptosOrTagList(Spots spots);

    /**
     * 不分页查询景点列表
     * @return
     */
    List<Spots> selectSpotsByList();
}
